最近実践したiOSのOSSライブラリ作成・運用方法まとめ その1〜作成編〜
おばんです、New Game!はひふみ先輩派の田中です。宗次郎になりたい。
ライブラリ作成方法まとめのその1です。 今回はライブラリの作成に関して。
作成する
題材を見つける
ライブラリの題材はできるだけ汎用的なものがよいです。 局所的すぎるUIライブラリなどは、パッと見のインパクトは大きいかもしれませんがプロジェクトに組み込みにくかったりします。
プラス、自分は案件で何度も書いているような箇所や、無駄に構造が複雑になる部分とか「ここがああなってたら楽なのに!!!」ってフラストレーションを貯める箇所を題材にしました。
今回のScrollingFollowViewも
- 「UINavigationBarの領域をスクロールに合わせて動かすことはできるけど、カスタマイズ性悪イイィ!!」
- フラストレーションがたまる
- 「カスタマイズしたいならもう全部UIViewでいいんじゃないか?」
という発想で作り始めるに至りました。
この題材であれば「スクロールに付随して動くView要素」という部分を軸にして、今回のUINavigationBarのみならずUITabBarや、さらに具体的な例となるとプロフィールを表示するUIや、フローティングボタンのUIにも転用できるのではないかと思います。
あとは受託においては「アマゾンっぽいUI」「メルカリっぽいUI」「ヤフオクっぽいUI」などの、案件においてお客さんから引き合いに出されやすいようなアプリのUIは狙い目なように思います。
汎用的で実用性のあるライブラリを作れるように心がけます。
実装する
ライブラリを作る際は普段とは若干趣の違うディレクトリ構成が必要になります。 以下を参考にさせていただきました。 Swiftでライブラリを公開する – Morizotter Blog
実装にあたっては、
- 導入が簡単な設計にする
- 汎用性を保つためにできるだけ単体で機能するように作る(依存性を少なくする)
の二点に注意します。 これらは以前サイバーエージェントさんで開催されたUIライブラリハッカソンで得た知見を元にしています。 詳しくは自分の個人ブログにも書いています。 Swiftのライブラリハッカソン、「Swift2 UI/UXチャレンジ」に参加してきた
簡単に上記ブログから抜粋すると
導入が簡単な設計にする
なるべく行数が少なく、ワンライナーで導入できるなどが望ましい。 また、導入部分のインターフェースは安易に後から更新することができない箇所なのでよく考える必要があります。 詳しくは別エントリで書きますが、導入箇所を変えてしまうとバージョンアップ時に必ず破壊的な実装になってしまうので「ライブラリをアップデートしたら動かなくなった」となって利用者としては打撃が大きくなります。気をつけましょう。
単体で機能するように作る
既存クラスへの依存度を低く保ち、よりレイヤーを俯瞰して汎用性を高めるなど。
まとめ
アプリにしろライブラリにしろ、最初のネタだしが一番苦心します。 目的と軸がはっきりして、具体的な利用シーンを思い浮かべられるところがミソだと思います。 そのためには、再三書いていますが汎用性を意識したライブラリ作りをしていくことが必要ですね! はい、頑張ります。
参考
- ScrollingFollowView
- Swift Trending Repositories
- 【iOS】スクロールに付随して動くUIView拡張ライブラリ、ScrollingFollowViewを公開しました。【OSS】
- Swiftでライブラリを公開する – Morizotter Blog
- Swiftのライブラリハッカソン、「Swift2 UI/UXチャレンジ」に参加してきた